package entities.xml;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import com.thoughtworks.xstream.annotations.XStreamAlias;

import entities.ItemVenta;
import entities.Venta;

@SuppressWarnings("serial")
@XStreamAlias("PedidoVenta")
public class PedidoVentaXML implements Serializable, ExchangeFormatEntity{
	
	private final static String ALIAS = "PedidoVenta";

	public PedidoVentaXML() {
		this.listaItemPedidoVenta = new ArrayList<ItemPedidoVentaXML>();
	}
	
	
	
	public PedidoVentaXML(ClienteXML cliente,
			List<ItemPedidoVentaXML> listaItemPedidoVenta) {
		super();
		this.cliente = cliente;
		this.listaItemPedidoVenta = listaItemPedidoVenta;
	}



	@XStreamAlias("Cliente")
	private ClienteXML cliente;
	
	@XStreamAlias("listaItemPedidoVenta")
	private List<ItemPedidoVentaXML> listaItemPedidoVenta;

	public List<ItemPedidoVentaXML> getListaItemPedidoVenta() {
		return listaItemPedidoVenta;
	}

	public void setListaItemPedidoVenta(
			List<ItemPedidoVentaXML> listaItemPedidoVenta) {
		this.listaItemPedidoVenta = listaItemPedidoVenta;
	}

	public ClienteXML getCliente() {
		return cliente;
	}

	public void setCliente(ClienteXML cliente) {
		this.cliente = cliente;
	}

	public static String getAlias() {
		return ALIAS;
	}

	@Override
	public Venta toModelEntity() {
		Venta venta = new Venta();
		List<ItemPedidoVentaXML> itemsPedidoVentaXML = this.getListaItemPedidoVenta();
		List<ItemVenta> itemsVenta = new ArrayList<ItemVenta>();
		for(ItemPedidoVentaXML itemPedidoVentaXML : itemsPedidoVentaXML){
			ItemVenta itemVenta = itemPedidoVentaXML.toModelEntity();
			itemsVenta.add(itemVenta);
		}
		venta.setItems(itemsVenta);
		venta.setClienteId(this.getCliente().getId());
		
		return venta;
	}

	@Override
	public void fromModelEntity(Object obj) {
		// TODO Auto-generated method stub
		
	}
	
	
}
